1
성과 분석 조사
DSAI2202Lab 8: Composing Data Operations

학업 지원 팀은 다음 목록이 필요합니다: 최근 성과가 하락한 재학 중 수강 등록. 각 학생을 동일 과목에서의 본인의 이전 성과와 비교하세요.

규칙 합의

  1. 두 기간을 사용합니다: 이전 및 최근. 각 기간에는 동일한 가중치의 평가가 두 개씩 있습니다.
  2. 평균을 비교하기 전에 다음 각 기간에 최소 두 개의 NULL이 아닌 점수가 있어야 합니다: 각 기간에.
  3. 다음을 계산합니다: decline_points = earlier_avg - recent_avg.
  4. 15점 이상 하락하면 검토입니다. 그렇지 않은 경우 자격을 갖춘 수강 등록은 알림 없음.
  5. 다음을 별도로 유지하세요: 데이터 부족 0은 유효한 점수이며, NULL 또는 누락된 레코드는 0이 아닙니다.

데이터베이스 준비

제공된 lab8_setup.sql 파일을 TA 폴더 DSAI2202/lab8/ 에서 pgAdmin으로 열고 전체 파일을 실행하세요. 새 연결을 열 때마다 오른쪽의 연결 설정을 다시 사용하세요.

설정 파일은 performance_comparison이라는 뷰(저장된 쿼리)도 제공합니다. 이는 이후 실습에 활용되며, 평가 결과를 저장한 별도의 테이블이 아닙니다.

✍️ 계산 전 확인
E01, E07, E08, E09, E24를 확인하세요. 두 기간 모두에서 충분한 점수를 가진 항목이 무엇인지 판단하세요. E24의 0이 E08의 NULL 값보다 더 강력한 근거를 제공하는 이유를 설명하세요.
스키마 설정
SET search_path TO lab8;
개수 확인
SET search_path TO lab8;

SELECT 'students' AS table_name, COUNT(*) AS row_count
FROM students
UNION ALL SELECT 'courses', COUNT(*) FROM courses
UNION ALL SELECT 'enrolments', COUNT(*) FROM enrolments
UNION ALL SELECT 'assessment_results', COUNT(*) FROM assessment_results
UNION ALL SELECT 'support_units', COUNT(*) FROM support_units
ORDER BY table_name;
근거 확인
SET search_path TO lab8;

SELECT e.enrolment_id, e.student_id, e.course_code,
       r.result_id, r.period, r.assessment_no, r.score
FROM enrolments AS e
JOIN assessment_results AS r
  ON r.enrolment_id = e.enrolment_id
WHERE e.enrolment_id IN ('E01', 'E07', 'E08', 'E09', 'E24')
ORDER BY e.enrolment_id, r.period, r.assessment_no;